package com.foxnicweb.app.domain.patent.meta;

import com.github.foxnic.api.bean.BeanProperty;
import com.foxnicweb.app.domain.patent.PatentProcessRole;
import java.util.Date;
import org.github.foxnic.web.domain.hrm.Employee;
import javax.persistence.Transient;



/**
 * @author 李方捷 , leefangjie@qq.com
 * @since 2023-05-12 14:09:42
 * @sign C6C9D2B738468B68741C60494F1E1917
 * 此文件由工具自动生成，请勿修改。若表结构或配置发生变动，请使用工具重新生成。
*/

public class PatentProcessRoleMeta {
	
	/**
	 * 主键 , 类型: java.lang.String
	*/
	public static final String ID="id";
	
	/**
	 * 主键 , 类型: java.lang.String
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,java.lang.String> ID_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,ID, java.lang.String.class, "主键", "主键", java.lang.String.class, null);
	
	/**
	 * 审批ID , pat_patent_process.id , 类型: java.lang.Long
	*/
	public static final String PATENT_PROCESS_ID="patentProcessId";
	
	/**
	 * 审批ID , pat_patent_process.id , 类型: java.lang.Long
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,java.lang.Long> PATENT_PROCESS_ID_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,PATENT_PROCESS_ID, java.lang.Long.class, "审批ID", "pat_patent_process.id", java.lang.Long.class, null);
	
	/**
	 * 角色类型 , 类型: java.lang.String
	*/
	public static final String ROLE_TYPE="roleType";
	
	/**
	 * 角色类型 , 类型: java.lang.String
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,java.lang.String> ROLE_TYPE_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,ROLE_TYPE, java.lang.String.class, "角色类型", "角色类型", java.lang.String.class, null);
	
	/**
	 * 员工ID , 类型: java.lang.String
	*/
	public static final String EMPLOYEE_ID="employeeId";
	
	/**
	 * 员工ID , 类型: java.lang.String
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,java.lang.String> EMPLOYEE_ID_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,EMPLOYEE_ID, java.lang.String.class, "员工ID", "员工ID", java.lang.String.class, null);
	
	/**
	 * 创建人ID , 类型: java.lang.String
	*/
	public static final String CREATE_BY="createBy";
	
	/**
	 * 创建人ID , 类型: java.lang.String
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,java.lang.String> CREATE_BY_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,CREATE_BY, java.lang.String.class, "创建人ID", "创建人ID", java.lang.String.class, null);
	
	/**
	 * 创建时间 , 类型: java.util.Date
	*/
	public static final String CREATE_TIME="createTime";
	
	/**
	 * 创建时间 , 类型: java.util.Date
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,java.util.Date> CREATE_TIME_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,CREATE_TIME, java.util.Date.class, "创建时间", "创建时间", java.util.Date.class, null);
	
	/**
	 * 修改人ID , 类型: java.lang.String
	*/
	public static final String UPDATE_BY="updateBy";
	
	/**
	 * 修改人ID , 类型: java.lang.String
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,java.lang.String> UPDATE_BY_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,UPDATE_BY, java.lang.String.class, "修改人ID", "修改人ID", java.lang.String.class, null);
	
	/**
	 * 修改时间 , 类型: java.util.Date
	*/
	public static final String UPDATE_TIME="updateTime";
	
	/**
	 * 修改时间 , 类型: java.util.Date
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,java.util.Date> UPDATE_TIME_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,UPDATE_TIME, java.util.Date.class, "修改时间", "修改时间", java.util.Date.class, null);
	
	/**
	 * 是否已删除 , 类型: java.lang.Integer
	*/
	public static final String DELETED="deleted";
	
	/**
	 * 是否已删除 , 类型: java.lang.Integer
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,java.lang.Integer> DELETED_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,DELETED, java.lang.Integer.class, "是否已删除", "是否已删除", java.lang.Integer.class, null);
	
	/**
	 * 删除人ID , 类型: java.lang.String
	*/
	public static final String DELETE_BY="deleteBy";
	
	/**
	 * 删除人ID , 类型: java.lang.String
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,java.lang.String> DELETE_BY_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,DELETE_BY, java.lang.String.class, "删除人ID", "删除人ID", java.lang.String.class, null);
	
	/**
	 * 删除时间 , 类型: java.util.Date
	*/
	public static final String DELETE_TIME="deleteTime";
	
	/**
	 * 删除时间 , 类型: java.util.Date
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,java.util.Date> DELETE_TIME_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,DELETE_TIME, java.util.Date.class, "删除时间", "删除时间", java.util.Date.class, null);
	
	/**
	 * 数据版本号 , 类型: java.lang.Integer
	*/
	public static final String VERSION="version";
	
	/**
	 * 数据版本号 , 类型: java.lang.Integer
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,java.lang.Integer> VERSION_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,VERSION, java.lang.Integer.class, "数据版本号", "数据版本号", java.lang.Integer.class, null);
	
	/**
	 * 员工 , 类型: org.github.foxnic.web.domain.hrm.Employee
	*/
	public static final String EMPLOYEE="employee";
	
	/**
	 * 员工 , 类型: org.github.foxnic.web.domain.hrm.Employee
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.PatentProcessRole,org.github.foxnic.web.domain.hrm.Employee> EMPLOYEE_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.PatentProcessRole.class ,EMPLOYEE, org.github.foxnic.web.domain.hrm.Employee.class, "员工", "员工", org.github.foxnic.web.domain.hrm.Employee.class, null);
	
	/**
	 * 全部属性清单
	*/
	public static final String[] $PROPS={ ID , PATENT_PROCESS_ID , ROLE_TYPE , EMPLOYEE_ID , CREATE_BY , CREATE_TIME , UPDATE_BY , UPDATE_TIME , DELETED , DELETE_BY , DELETE_TIME , VERSION , EMPLOYEE };
	
	/**
	 * 代理类
	*/
	public static class $$proxy$$ extends com.foxnicweb.app.domain.patent.PatentProcessRole {

		private static final long serialVersionUID = 1L;

		
		/**
		 * 设置 主键
		 * @param id 主键
		 * @return 当前对象
		*/
		public PatentProcessRole setId(String id) {
			super.change(ID,super.getId(),id);
			super.setId(id);
			return this;
		}
		
		/**
		 * 设置 审批ID
		 * @param patentProcessId 审批ID
		 * @return 当前对象
		*/
		public PatentProcessRole setPatentProcessId(Long patentProcessId) {
			super.change(PATENT_PROCESS_ID,super.getPatentProcessId(),patentProcessId);
			super.setPatentProcessId(patentProcessId);
			return this;
		}
		
		/**
		 * 设置 角色类型
		 * @param roleType 角色类型
		 * @return 当前对象
		*/
		public PatentProcessRole setRoleType(String roleType) {
			super.change(ROLE_TYPE,super.getRoleType(),roleType);
			super.setRoleType(roleType);
			return this;
		}
		
		/**
		 * 设置 员工ID
		 * @param employeeId 员工ID
		 * @return 当前对象
		*/
		public PatentProcessRole setEmployeeId(String employeeId) {
			super.change(EMPLOYEE_ID,super.getEmployeeId(),employeeId);
			super.setEmployeeId(employeeId);
			return this;
		}
		
		/**
		 * 设置 创建人ID
		 * @param createBy 创建人ID
		 * @return 当前对象
		*/
		public PatentProcessRole setCreateBy(String createBy) {
			super.change(CREATE_BY,super.getCreateBy(),createBy);
			super.setCreateBy(createBy);
			return this;
		}
		
		/**
		 * 设置 创建时间
		 * @param createTime 创建时间
		 * @return 当前对象
		*/
		public PatentProcessRole setCreateTime(Date createTime) {
			super.change(CREATE_TIME,super.getCreateTime(),createTime);
			super.setCreateTime(createTime);
			return this;
		}
		
		/**
		 * 设置 修改人ID
		 * @param updateBy 修改人ID
		 * @return 当前对象
		*/
		public PatentProcessRole setUpdateBy(String updateBy) {
			super.change(UPDATE_BY,super.getUpdateBy(),updateBy);
			super.setUpdateBy(updateBy);
			return this;
		}
		
		/**
		 * 设置 修改时间
		 * @param updateTime 修改时间
		 * @return 当前对象
		*/
		public PatentProcessRole setUpdateTime(Date updateTime) {
			super.change(UPDATE_TIME,super.getUpdateTime(),updateTime);
			super.setUpdateTime(updateTime);
			return this;
		}
		
		/**
		 * 设置 是否已删除
		 * @param deleted 是否已删除
		 * @return 当前对象
		*/
		public PatentProcessRole setDeleted(Integer deleted) {
			super.change(DELETED,super.getDeleted(),deleted);
			super.setDeleted(deleted);
			return this;
		}
		
		/**
		 * 设置 删除人ID
		 * @param deleteBy 删除人ID
		 * @return 当前对象
		*/
		public PatentProcessRole setDeleteBy(String deleteBy) {
			super.change(DELETE_BY,super.getDeleteBy(),deleteBy);
			super.setDeleteBy(deleteBy);
			return this;
		}
		
		/**
		 * 设置 删除时间
		 * @param deleteTime 删除时间
		 * @return 当前对象
		*/
		public PatentProcessRole setDeleteTime(Date deleteTime) {
			super.change(DELETE_TIME,super.getDeleteTime(),deleteTime);
			super.setDeleteTime(deleteTime);
			return this;
		}
		
		/**
		 * 设置 数据版本号
		 * @param version 数据版本号
		 * @return 当前对象
		*/
		public PatentProcessRole setVersion(Integer version) {
			super.change(VERSION,super.getVersion(),version);
			super.setVersion(version);
			return this;
		}
		
		/**
		 * 设置 员工
		 * @param employee 员工
		 * @return 当前对象
		*/
		public PatentProcessRole setEmployee(Employee employee) {
			super.change(EMPLOYEE,super.getEmployee(),employee);
			super.setEmployee(employee);
			return this;
		}

		/**
		 * 克隆当前对象
		*/
		@Transient
		public PatentProcessRole clone() {
			return duplicate(true);
		}

		/**
		 * 复制当前对象
		 * @param all 是否复制全部属性，当 false 时，仅复制来自数据表的属性
		*/
		@Transient
		public PatentProcessRole duplicate(boolean all) {
			$$proxy$$ inst=new $$proxy$$();
			inst.setCreateBy(this.getCreateBy());
			inst.setDeleted(this.getDeleted());
			inst.setCreateTime(this.getCreateTime());
			inst.setUpdateBy(this.getUpdateBy());
			inst.setDeleteTime(this.getDeleteTime());
			inst.setPatentProcessId(this.getPatentProcessId());
			inst.setDeleteBy(this.getDeleteBy());
			inst.setEmployeeId(this.getEmployeeId());
			inst.setUpdateTime(this.getUpdateTime());
			inst.setId(this.getId());
			inst.setRoleType(this.getRoleType());
			inst.setVersion(this.getVersion());
			if(all) {
				inst.setEmployee(this.getEmployee());
			}
			inst.clearModifies();
			return inst;
		}

	}
}